// ts中的枚举类型： 会变一个双向的键值对对象
// 开发中某几个数值代表某些状态
// 特点：
// 一组数值分别定义含义名
// 存在几个固定值，不会超出范围可能性
export { }  //确保与其他成员冲突，独立作用域

// 运用对象建立枚举属性状态连接
// const postStatus = {
//     draft:0,
//     unpublished:1,
//     published:2
// }
// 运用枚举对象实现：
// enum postStatus {
//     draft = 0,    
//     unpublished = 1,   
//     published = 2
// }
// enum postStatus {  //枚举值不定义
//     draft ,    //不定义值，draft将在调用时从0赋值
//     unpublished,   //后面的变量将进行累加
//     published
// }

// 枚举类型将会入侵代码，影响执行结果
// ts编译后=》js，大多数代码将移除系列注释，而枚举类型不会，他会将枚举的属性及值带入源代码
// 变成一个双向的键值对对象
// 如 下：
// var postStatus;
// (function (postStatus) {
//     postStatus[postStatus["draft"] = 0] = "draft";
//     postStatus[postStatus["unpublished"] = 1] = "unpublished";
//     postStatus[postStatus["published"] = 2] = "published";
// })(postStatus || (postStatus = {}));

// =》   所以采用常量枚举
const enum postStatus {  
    draft ,    
    unpublished,   
    published
}

const post = {
    title: "Hello TypeScript",
    content: "Typscript is a typed superset of javascript",
    status: postStatus.draft  // 0:草稿 1：发布  2：未发布
}





